package mh.demo.springboot.system;

import org.springframework.boot.system.ApplicationPid;

import java.lang.management.ManagementFactory;

/**
 * 关于获取Pid的demo
 */
public class PidDemo {

    public void run() {
        // 方式1：通过ApplicationPid获取
        ApplicationPid pid = new ApplicationPid();
        System.out.printf("方式1-进程ID: %s%n", pid);
        // 方式2： 在META-INF/spring.factories中注册监听器
        // org.springframework.context.ApplicationListener=org.springframework.boot.context.ApplicationPidFileWriter
        // 该监听器会将当前的进程ID写入文件中，通过spring.pid.file配置文件路径
        // 方式3：
        String pidStr = ManagementFactory.getRuntimeMXBean().getName().split("@")[0];
        System.out.printf("方式3-进程ID: %s%n", pidStr);
    }

}
